Rotations on a Sphere

Steven Dutch, Professor Emeritus, Natural and Applied Sciences, Universityof Wisconsin - Green Bay


Rotations around some arbitrary axis are essential for any computer study of platetectonics, but it can be astonishingly hard to find out how to do it. Since themathematics were worked out long ago, most books on plate tectonics simply refer readersto mathematics texts, but since this is not a very widely-used operation, mathematicstexts and references tend to omit it.

Needed Data

In order to describe a rotation on a sphere, we need to know the location of therotation axis and the rotation angle. We will find it most useful to describe the rotationaxis in terms of its x-, y- and z- coordinates. Call the x-, y- and z- coordinates of theaxis c1, c2 and c3, respectively. For simplicity we will do everything on a unit sphere;if we need real-world values we can multiply the final results by the actual radius of thesphere. On a unit sphere:

c12 + c22 + c32 = 1

Converting to Cartesian Coordinates

All the points rotated will also be described in terms of their three-dimensionalcoordinates. Use the formulas above to convert the coordinates of those points toCartesian coordinates as well.

Matrix Notation

We are going to transform points (x,y,z) to new coordinates (x',y',z') using formulas:

Since this sort of thing happens so frequently in mathematics, a shorthand notation forit has been developed called matrix algebra. We can write the coefficients a1, b1... c3 in a square array. The operation of matrix multiplication is defined thus:

              |a1 b1 c1||x|(x',y',z') = |a2 b2 c2||y|              |a3 b3 c3||z|

To find x', take each term in the first row of the array, multiply it by thecorresponding term in the original coordinate array (written vertically) and sum theresult. That is, x' = a1x + b1y + c1z. We do the same thing for the y' and z' terms.

Multiplying a matrix by a constant or expression simply means multiplying everything inthe matrix by the same term. Adding matrices means adding the terms.

  |a1 b1 c1|   |ka1 kb1 kc1|   k|a2 b2 c2| = |ka1 kb1 kc1|  and |a3 b3 c3|   |ka1 kb1 kc1| |a1 b1 c1| |d1 e1 f1|   |a1+d1 b1+e1 c1+f1||a1 b1 c1|+|d1 e1 f1| = |a2+d2 b2+e2 c2+f2| |a1 b1 c1| |d1 e1 f1|   |a3+d3 b3+e3 c3+f3|

For a simple 3 x 3 matrix, matrix notation may not seem like much of an improvementover just writing the equations. But for more complex situations, the improvement can bepretty substantial. However, my personal opinion is that, for situations where the user isgoing to have to write the equations in a program anyway, authors do a disservice (call itlaziness) by simply stopping at the matrix forms.

Sum-of-Matrices Form

Let the coordinates of the rotation axis be (c1,c2,c3) and the rotation angle be a. Anypoint (x,y,z) will be rotated into new coordinates (x',y',z') by the following matrix:

      |1 0 0|              |c1c1 c1c2 c1c3|        |  0 -c3  c2|cos a|0 1 0| + (1 - cos a)|c2c1 c2c2 c2c3| + sin a| c3   0 -c1|      |0 0 1|              |c3c1 c3c2 c3c3|        |-c2  c1   0|

In the middle term the coefficients are written c1c1, c2c2 and c3c3 partly to avoidexponents but also to show the pattern of the terms more clearly.

Cayley-Klein (Quaternion) Form

This form starts off with terms that are a bit more complex but leads to a simplersingle matrix. We define k = c1 sin a/2, m = c2 sin a/2, n = c3 sin a/2, p = cos a/2. Notethat:

                                                           k2  + m2  + n2  + p2  = 1

The rotation matrix is:

           |                                    |           |k2-m2-n2+p2   2(km-np)    2(nk+mp)  |          |                                    |          |                                    |           | 2(km-np)   k2-m2-n2+p2   2(mn-kp)  |          |                                    |          |                                    |           | 2(nk-mp)     2(mn+kp)   k2-m2-n2+p |

The Equations

Sum of Two Rotations

Here's where matrix algebra has an advantage. If we have two rotations, eachrepresented as a matrix, the result of both rotations is the product of their twomatrices. If, for example, you're doing a plate tectonic reconstruction where one sourcegives you the North America-Pacific rotation, and another gives you the NorthAmerica-Eurasia rotation, you may want to determine the rotation between Eurasia and thePacific.

The formulas for b, c, and d are just the formulas for converting latitude andlongitude to Cartesian coordinates, but we need a different notation here because we haveto distinguish two sets of coordinates. The result of the two rotations is:

We have a rotation with pole at latitude L, longitude W, Rotation angle A, and:

Thus:


Return to Mathematical Formulas Index
Return to Crustal Movements Syllabus
Return to Techniques Manual Index

Return to Professor Dutch's Home Page
Created 22 January 1999, Last Update 24 May 2020